home *** CD-ROM | disk | FTP | other *** search
- START movem.l d0/a0,-(a7) ;save initial values
- movea.l $4.w,a6
- suba.l a1,a1
- jsr (-294,a6) ; FindTask()
- move.l d0,a4
- tst.l (172,a4) ; process.cli
- beq.s workbench
- movem.l (a7)+,d0/a0 ;restore regs
- bra.s cli ;and run the user prog
- workbench lea (92,a4),a0 ; process.msgport
- jsr (-384,a6) ;wait for a message (WaitPort(())
- lea (92,a4),a0 ; process.msgport
- jsr (-372,a6) ;then get it (GetMsg())
- move.l d0,_wbmessage ;save it for later reply
- movem.l (a7)+,d0/a0 ;restore
- cli bsr.s _START ;call our program
- move.l d0,-(a7) ;save it
- tst.l _wbmessage
- beq.s exittodos ;if I was a CLI
- jsr (-132,a6) ; Forbid()
- move.l (_wbmessage,pc),a1
- jsr (-138,a6) ; Permit()
- exittodos move.l (a7)+,d0 ;exit code
- rts
-
- xdef _wbmessage
- _wbmessage dc.l 0
-
-
- _START move.l a0,_arg
- clr.b (-1,a0,d0.w)
- movea.l $4.w,a6
- lea (DOSName,pc),a1
- moveq #37,d0
- jsr (-552,a6) ; OpenLibrary()
- move.l d0,_dosbase
- beq.s .FINISH
-
- movea.l d0,a6
- jsr (-60,a6) ; Output()
- move.l d0,_stdout
- jsr (-54,a6) ; Input()
- move.l d0,_stdin
-
- movea.l $4.w,a6
- lea (IntName,pc),a1
- moveq #37,d0
- jsr (-552,a6) ; OpenLibrary()
- move.l d0,_intuitionbase
- beq.s .CLOSEDOS
-
- lea (GfxName,pc),a1
- moveq #37,d0
- jsr (-552,a6) ; OpenLibrary()
- move.l d0,_gfxbase
- beq.s .CLOSEINT
-
-
- xref _main
- jsr _main ; a6 is stored
- move.l d0,d2
-
- movea.l _gfxbase,a1
- jsr (-414,a6) ; CloseLibrary()
- .CLOSEINT movea.l _intuitionbase,a1
- jsr (-414,a6) ; CloseLibrary()
- .CLOSEDOS movea.l _dosbase,a1
- jsr (-414,a6) ; CloseLibrary()
- .FINISH move.l d2,d0
- rts
- ****************************************
- xdef _dosbase
- xdef _intuitionbase
- xdef _gfxbase
- xdef _arg
- xdef _stdout
- xdef _stdin
- ****************************************
- _dosbase dc.l 0
- _intuitionbase dc.l 0
- _gfxbase dc.l 0
- _arg dc.l 0
- _stdout dc.l 0
- _stdin dc.l 0
- ****************************************
- DOSName dc.b 'dos.library',0
- IntName dc.b 'intuition.library',0
- GfxName dc.b 'graphics.library',0
-